Release 10.1A: OpenEdge Development:
Progress Dynamics Advanced Development


Architectural principles

Progress Dynamics is based on the Application Development Model for ProgressVersion 2 (ADM2) and its SmartObjects. The definitions, and in particular some of the names, used in the Repository tables discussed here reflect that. Note, however, that while the term SmartObject, along with other ADM terminology such as SmartLink, is prevalent throughout this part of the Repository and certainly in this document, there is relatively little in the definition of the Repository schema or even in the data for a particular application that is specific to SmartObjects. A few characteristics, such as the definition of supported links and other details, are mapped to the definition of such things within the ADM2. However, there is nothing to prevent a developer from using the same schema and most of the same data to define application components that were not realized through the ADM.

In fact, as more and more objects become logical entities that are just a collection of records in the database, realized by some driver procedure at run time, the number of actual independent SmartObjects as such becomes ever smaller. The goal over time is that all application objects will be dynamically generated, and that only application-specific business logic will be defined in 4GL source code procedures. Viewed in that way, the whole notion of a SmartObject application becomes unclear. The ADM then becomes nothing more than a convention for defining object properties and a particular set of procedures for creating them at run time and coordinating their behavior. Nothing would stop a developer from creating an alternative set of driver procedures to create a different interface and a different implementation of the objects’ behavior.

Indeed, a large part of why the Repository is valuable is that it reduces object definitions to an abstraction, so that an application can be realized on any platform, with any user interface, driven by the same data. The dynamic HTML interface for Web browsers in Progress Dynamics Version 2 is a perfect example of this. The client code running in the Web browser does not consist of SmartObjects in the same sense that it does when you run the application on a Progress run time client, but it reproduces almost all the same behavior by reading exactly the same data from the Repository. In large part, that is why this document exists: to help people understand how to write such driver programs and how to use the data provided for them.


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095